<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Using Berkeley DB with PHP</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" />
    <link rel="up" href="ext.html" title="Chapter 24.  Berkeley DB Extensions" />
    <link rel="prev" href="ext_perl.html" title="Using Berkeley DB with Perl" />
    <link rel="next" href="dumpload.html" title="Chapter 25.  Dumping and Reloading Databases" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 12.1.6.2</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Using Berkeley DB with PHP</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="ext_perl.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 24.  Berkeley DB Extensions </th>
          <td width="20%" align="right"> <a accesskey="n" href="dumpload.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="ext_php"></a>Using Berkeley DB with PHP</h2>
          </div>
        </div>
      </div>
      <p>
        A PHP 4 extension for this release of Berkeley DB is
        included in the distribution package. It can either either
        link directly against the installed Berkeley DB library (which
        is necessary for running in a non-Apache/mod_php4
        environment), or against mod_db4, which provides additional
        safety when running under Apache/mod_php4.
    </p>
      <p> 
        For installation instructions, see the
        <code class="filename">INSTALL</code> file that resides in the
        <code class="literal">lang/php_db4</code> directory in your
        Berkeley DB distribution. 
    </p>
      <p>
        The PHP extension provides the following classes, which
        mirror the standard Berkeley DB C++ API.
    </p>
      <pre class="programlisting">class Db4Env {
    function Db4Env($flags = 0) {}
    function close($flags = 0) {}
    function dbremove($txn, $filename, $database = null, $flags = 0) {}
    function dbrename($txn, $file, $database, $new_database, 
                      $flags = 0) {}
    function open($home, $flags = DB_CREATE  | DB_INIT_LOCK | 
                  DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN, 
                  $mode = 0666) {}
    function remove($home, $flags = 0) {}
    function add_data_dir($directory) {}
    function txn_begin($parent_txn = null, $flags = 0) {}
    function txn_checkpoint($kbytes, $minutes, $flags = 0) {}
}

class Db4 {
    function Db4($dbenv = null) {}	// create a new Db4 object using 
                                    // the optional DbEnv
    function open($txn = null, $file = null, $database = null, 
                  $flags = DB_CREATE, $mode = 0) {}
    function close() {}
    function del($key, $txn = null) {}
    function get($key, $txn = null, $flags = 0) {}
    function pget($key, &amp;$pkey, $txn = null, $flags = 0) {}
    function get_type() {} // returns the stringified 
                           // database type name
    function stat($txn = null, $flags = 0) {} // returns statistics as
                                              // an as
    function join($cursor_list, $flags = 0) {}
    function sync() {}
    function truncate($txn = null, $flags = 0) {}
    function cursor($txn = null, flags = 0) {}
}

class Db4Txn {
    function abort() {}
    function commit() {}
    function discard() {}
    function id() {}
    function set_timeout($timeout, $flags = 0) {}
}

class Db4Cursor {
    function close() {}
    function count() {}
    function del() {}
    function dup($flags = 0) {}
    function get($key, $flags = 0) {}
    function pget($key, &amp;$primary_key, $flags = 0) {}
    function put($key, $data, $flags = 0) {}
}</pre>
      <p>
        The PHP extension attempts to be "smart" for you by:
    </p>
      <div class="orderedlist">
        <ol type="1">
          <li>
            Auto-committing operations on transactional
            databases if no explicit Db4Txn object is
            specified.
        </li>
          <li>
            Performing reference and dependency checking to
            insure that all resources are closed in the correct
            order.
        </li>
          <li>
            Supplying default values for flags.
        </li>
        </ol>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="ext_perl.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="ext.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="dumpload.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Using Berkeley DB with Perl </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Chapter 25.  Dumping and Reloading Databases
    </td>
        </tr>
      </table>
    </div>
  </body>
</html>
